package com.ray.tool.common.constant;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * 日期时间 - 常量池
 *
 * @author LiaoYuXing-Ray
 * @version 1.0
 * @createDate 2023/11/26 9:32
 **/
public class RayDateConstants {

    /**
     * 浮点型 - 格式化 2023/9/14 16:04
     * <p style="color:orange">
     * 值：保留7位有效小数
     * </p>
     */
    public static final DecimalFormat DECIMAL_FOR_MAT;
    /**
     * 日期格式纯数字字符串 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyyMMddHHmmssSSS
     * </p>
     */
    public static final String DATE_STR = "yyyyMMddHHmmssSSS";

    /**
     * 日期格式 默认有效17位（精确到毫秒） 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyy-MM-dd HH:mm:ss.SSS
     * </p>
     */
    public static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
    /**
     * 日期格式 默认有效14位（精确到秒） 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyy-MM-dd HH:mm:ss
     * </p>
     */
    public static final String DATE_PATTERN_14 = "yyyy-MM-dd HH:mm:ss";

    /**
     * Instant时间 - 格式化 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyy-MM-dd HH:mm:ss.SSS
     * </p>
     */
    public static final DateTimeFormatter DATE_TIME_FORMATTER;
    /**
     * Date时间 - 格式化 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyy-MM-dd HH:mm:ss.SSS
     * </p>
     */
    public static final SimpleDateFormat SIMPLE_DATE_FORMAT;
    /**
     * Date时间 - 格式化 2023/9/14 16:04
     * <p style="color:orange">
     * 值：yyyy-MM-dd HH:mm:ss
     * </p>
     */
    public static final SimpleDateFormat SIMPLE_DATE_FORMAT_14;

    static {
        DECIMAL_FOR_MAT = new DecimalFormat("#.#######");
        DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(DATE_PATTERN)
                .withZone(ZoneId.systemDefault()).withLocale(Locale.CHINA);
        SIMPLE_DATE_FORMAT = new SimpleDateFormat(DATE_PATTERN);
        SIMPLE_DATE_FORMAT_14 = new SimpleDateFormat(DATE_PATTERN_14);
    }
}
